Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

253
Visualizações
Cómo mostrar la opción elegida | Autocompletar interfaz de usuario de material

Estoy obteniendo datos de una API como opciones en Material UI Autocompletar, las opciones se obtuvieron correctamente, pero el problema es que cuando elijo una opción y la envío de vuelta a la API (POST), la opción (categoría) no se muestra como texto que muestra como un número (0) como se muestra en la imagen de abajo (Mongodb) ingrese la descripción de la imagen aquí

 import Autocomplete from '@mui/material/Autocomplete'; import TextField from '@mui/material/TextField'; export default function Write() { const [categories, setCategories] = useState(""); const handlerSubmit = async (e) => { e.preventDefault(); const newPost = { username: user.username, title, categories, } if (file) { try { } catch (err) { } } try { const res = await axios.post("/posts", newPost); } catch (err) { } } useEffect(() => { const getCats = async () => { const res = await axios.get("/categories"); setCategories(res.data); }; getCats(); }, []); return ( <div className='write'> <form className="writeForm" onSubmit={handlerSubmit}> <input className="writeTitleInput" required type="text" placeholder="title" autoFocus={true} onChange={e => setTitle(e.target.value)}> </input> <Autocomplete multiple limitTags={3} id="tags-standard" options={categories} getOptionLabel={option => (option.name ? option.name : "")} onChange={(e) => setCategories(e.target.value)} renderInput={(params) => ( <TextField {...params} variant="standard" label="Multiple values" placeholder="Choose a Category" /> )} /> <button className="writeSubmitButton" type="submit">Publish</button> </form> </div> ) }

La pregunta es cómo mostrar la opción elegida como una cadena, no como una matriz.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Según los documentos , la firma de onChange para Autocomplete es

 function( event: React.SyntheticEvent, value: T | Array<T>, reason: string, details?: string) => void

Está esperando que el valor esté en event , cuando en realidad está en value . Modifique su devolución de llamada onChange a algo como lo siguiente:

 onChange={(_, value) => setCategories(value)}

Es posible que el value no tenga la forma que espera su API, por lo que debe intentar usar console.log en la devolución de llamada para determinar su forma y luego modificar lo anterior de manera adecuada.

el value es Array<T> cuando se establece multiple , por lo que probablemente también debería tener su valor predeterminado para las categories establecidas en el mismo tipo, es decir, una matriz vacía ( [] ) en lugar de una cadena vacía ( "" ).

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda